Purpose

The purpose of this analysis is to assess significant differences in GSVA scores for each hallmark pathways. Using ANOVA and subsequent Tukey tests, we ask:

  • For each pathway, are GSVA scores significantly different across tumor_descriptor? If so, which timepoints are significantly different?

We perform this using both GSVA scores calculated from RNA-seq libraries. Code is also flexible enough to test a different variable besides tumor_descriptor, etc.

Plots are inspired from here: https://yulab-smu.top/biomedical-knowledge-mining-book/enrichplot.html

Usage

To run this from the command line, use:

Rscript -e "rmarkdown::render('01-model-gsea-transcriptomic-pairs.Rmd', clean = TRUE)" 

This assumes you are in the top directory of the repository.

Setup

Load libraries and define certain constants:

suppressPackageStartupMessages({
  library(tidyverse)
  library(broom)
  library(ggpubr)
  library(ggrepel)
  
  #if (!require("BiocManager", quietly = TRUE))
  #  install.packages("BiocManager")

  #BiocManager::install("ComplexHeatmap")

  library(ComplexHeatmap)

})

Directories and File Inputs/Outputs

# Detect the ".git" folder. This will be in the project root directory.
# Use this as the root directory to ensure proper sourcing of functions
# no matter where this is called from.
root_dir <- rprojroot::find_root(rprojroot::has_dir(".git"))
analysis_dir <- file.path(root_dir, "analyses", "gene-set-enrichment-analysis") 
input_dir <- file.path(analysis_dir, "input")
files_dir <- file.path(root_dir, "analyses", "sample-distribution-analysis", "results")

# Input files
## Metadata file (histologies/clinical data)
metadata_file <- file.path(files_dir, "pbta.tsv") # file from add-sample-distribution module
matched_transcriptomic_file <- file.path(files_dir, "transcriptomic_assays_matched_time_points.tsv") # file from add-sample-distribution module

## GSEA scores
scores_file <- file.path(input_dir, "gsva_scores.tsv")

# File path to plots directory
plots_dir <-
  file.path(analysis_dir, "plots", "paired-transcriptomic")
if (!dir.exists(plots_dir)) {
  dir.create(plots_dir)
}

barplots_dir <-
  file.path(plots_dir, "barplots")
if (!dir.exists(barplots_dir)) {
  dir.create(barplots_dir)
}

dotplots_dir <-
  file.path(plots_dir, "dotplots")
if (!dir.exists(dotplots_dir)) {
  dir.create(dotplots_dir)
}

diverging_barplots_dir <-
  file.path(plots_dir, "diverging_barplots")
if (!dir.exists(diverging_barplots_dir)) {
  dir.create(diverging_barplots_dir)
}


# File path to results directory
results_dir <-
  file.path(analysis_dir, "results", "paired-transcriptomic")
if (!dir.exists(results_dir)) {
  dir.create(results_dir)
}


# Significance testing universal threshold
SIGNIFICANCE_THRESHOLD <- 0.01

# This script contains functions used to modeling GSVA scores
source(paste0(analysis_dir, "/util/hallmark_models.R"))
source(paste0(analysis_dir, "/util/function-create-plots.R"))
source(paste0(root_dir, "/figures/scripts/theme.R"))

Read in data and process

######## Load input files
pbta <- readr::read_tsv(metadata_file, guess_max = 100000) %>% 
  filter(experimental_strategy == "RNA-Seq") %>% 
  filter(!is.na(RNA_library))
Rows: 4542 Columns: 62── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (38): Kids_First_Participant_ID, cg_multiple, cg_id, Kids_First_Biospecimen_ID, sample_id, aliquot_id, experimental_strategy, ...
dbl (10): age_at_diagnosis_days, OS_days, EFS_days, age_last_update_days, normal_fraction, tumor_fraction, tumor_ploidy, age_at_ev...
lgl (14): gtex_group, gtex_subgroup, cell_line_composition, cell_line_passage, tumor_fraction_RFpurify_ABSOLUTE, tumor_fraction_RF...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Read in matched_transcriptomic_file and get the list of patients 
# with matched time points for the transcriptomic assays
patient_list <- readr::read_tsv(matched_transcriptomic_file, guess_max = 100000, show_col_types = FALSE) %>%
  subset(select = c("Kids_First_Participant_ID", "descriptors"))

#patient_list <- readr::read_tsv(matched_transcriptomic_file, guess_max = 100000, show_col_types = FALSE) %>%
#  subset(select = c("Kids_First_Participant_ID", "descriptors"))

# How many patients with paired assays?
print(length(unique(patient_list$Kids_First_Participant_ID)))
[1] 122
# Add metadata from pbta to patient list
metadata <- patient_list %>% 
  left_join(pbta, by = "Kids_First_Participant_ID")
Warning: Detected an unexpected many-to-many relationship between `x` and `y`.
print(table(metadata$RNA_library))

  exome_capture          poly-A poly-A stranded        stranded 
              2              11             166             219 
# Read scores file
scores_file <- readr::read_tsv(scores_file) 
Rows: 193700 Columns: 4── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: "\t"
chr (3): Kids_First_Biospecimen_ID, hallmark_name, data_type
dbl (1): gsea_score
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Vector to order timepoints
timepoints <- c("Diagnosis", "Progressive", "Recurrence", "Deceased", "Second Malignancy", "Unavailable")

### Merge histology metadata with each set of gsea scores
metadata_with_gsva <- metadata %>%
  inner_join(scores_file, by = "Kids_First_Biospecimen_ID", relationship = "many-to-many") %>% 
  mutate(data_type = case_when(grepl("exome_capture|poly-A|poly-A stranded", RNA_library) ~ "merged", 
                                     TRUE ~ RNA_library),
         # Create `cg` column to account for samples with the most biospecimens and transcripts data in there
         # We will use the `cg_id` column that already accounts for cases with multiple diagnoses
         # and indicates the diagnosis at the first diagnostic specimen
         cg = case_when(grepl("High-grade glioma", cg_id) ~ "HGG", 
                            grepl("Diffuse midline glioma", cg_id) ~ "DMG",
                            grepl("Atypical Teratoid Rhabdoid Tumor", cg_id) ~ "ATRT",
                            grepl("Low-grade glioma", cg_id) ~ "LGG",
                            grepl("Ependymoma", cg_id) ~ "Ependymoma",
                            grepl("Medulloblastoma", cg_id) ~ "Medulloblastoma",
                            TRUE ~ "Other"),
        # bs_rna_library_id = paste(Kids_First_Biospecimen_ID, RNA_library_sum, sep = "_"),
         tumor_descriptor = factor(tumor_descriptor),
         tumor_descriptor = fct_relevel(tumor_descriptor, timepoints)) %>% 
  filter(!cg == "Other") %>% 
  arrange(tumor_descriptor)

# How many patients with paired assays?
print(length(unique(metadata_with_gsva$Kids_First_Participant_ID)))
[1] 86
# How many patients with paired assays per cancer type?
cg_unique <- metadata_with_gsva %>% 
  group_by(Kids_First_Participant_ID, cg) %>%
  select(Kids_First_Participant_ID, cg) %>% 
  distinct(Kids_First_Participant_ID, .keep_all = TRUE)

print(table(cg_unique$cg))

           ATRT             DMG      Ependymoma             HGG             LGG Medulloblastoma 
              8              10              19              14              23              12 
# How many biospecimens per `RNA_library`?
bs_unique <- metadata_with_gsva %>%
  group_by(Kids_First_Biospecimen_ID, data_type) %>%
  select(Kids_First_Biospecimen_ID, data_type) %>% 
  distinct(Kids_First_Biospecimen_ID, .keep_all = TRUE)

print(table(bs_unique$data_type))

  merged stranded 
      91      118 
print(table(metadata_with_gsva$data_type))

  merged stranded 
    6150     7400 

ANOVA and Tukey analysis of GSVA scores

Here we perform a series of ANOVAs, for polyA and stranded libraries separately, to determine whether mean GSVA scores for a given grouping are significantly different across hallmarks (pathways). The given groupings examined here are cancer_group and tumor_descriptor. In other words, we perform an ANOVA (and associated posthoc Tukey test) for each hallmark as, hallmark ~ grouping. Users can specify the grouping variable.

RNA-library-merged-vs-stranded

cg_list <- metadata_with_gsva %>% pull(cg) %>% unique()
cg_list <- sort(cg_list, decreasing = FALSE)
print(cg_list)

for(x in 1:length(cg_list)){
  print(x)
  
  # Define directories for output files
  barplots_output <-
  file.path(barplots_dir, cg_list[x])
if (!dir.exists(barplots_output)) {
  dir.create(barplots_output)
}

dotplots_output <-
  file.path(dotplots_dir, cg_list[x])
if (!dir.exists(dotplots_output)) {
  dir.create(dotplots_output)
}

diverging_barplots_output <-
  file.path(diverging_barplots_dir, cg_list[x])
if (!dir.exists(diverging_barplots_output)) {
  dir.create(diverging_barplots_output)
}


# File path to results directory
results_output <-
  file.path(results_dir, cg_list[x])
if (!dir.exists(results_output)) {
  dir.create(results_output)
}

  
  
  data_df <- metadata_with_gsva %>%
    dplyr::filter(cg == cg_list[x])
  
  ######## Find out unique RNA library types
  rna_library_list <- data_df %>% pull(data_type) %>% unique()
  rna_library_list <- sort(rna_library_list, decreasing = FALSE)
  print(rna_library_list)

for(i in 1:length(rna_library_list)){
  print(i)
  
  rna_library = rna_library_list[i]
  print(rna_library)
  
  # find out the number of `tumor_descriptor` with this RNA library
  tumor_descriptor_n <- data_df %>%
    dplyr::filter(data_type == rna_library) %>%
    dplyr::pull(tumor_descriptor) %>% 
    unique() %>% length()
  
    
  # anova can only be run on factors with >=2 levels, so to avoid error, we give a if statement
  if(tumor_descriptor_n>=2){
    
    tumor_descriptor_model_results <- gsva_anova_tukey(data_df, tumor_descriptor, rna_library, SIGNIFICANCE_THRESHOLD) 
  
    ###########################################################################################
    # print results for viewing
    print(rna_library)
    print(head(tumor_descriptor_model_results))
    
    
    anova_fname <- paste0(results_output, "/", "gsva_anova_", rna_library_list[i], "_", cg_list[x], "_tumor_descriptor.tsv")
    readr::write_tsv(tumor_descriptor_model_results[["anova"]], file = anova_fname)
     
    tukey_fname <- paste0(results_output, "/", "gsva_tukey_", rna_library_list[i], "_", cg_list[x], "_tumor_descriptor.tsv")
    readr::write_tsv(tumor_descriptor_model_results[["tukey"]], file = tukey_fname)

    ################ plot results ########################################################
    ###### tukey ######################################################################
   
    td_models <- unique(as.character(tumor_descriptor_model_results[["tukey"]]$comparison))
    td_models <- sort(td_models, decreasing = FALSE)
    print(td_models)
  
    for(t in seq_along(td_models)){
      print(t)
      
      #Set seed
      set.seed(2023)
    
      # Re-order bars
      df <- tumor_descriptor_model_results[["tukey"]] %>%
        filter(comparison == td_models[t]) %>% 
        mutate(across(tukey_p_value, round, 2))
        #mutate(hallmark_name_id = paste0(hallmark_name, 1:50))

      # The significantly differentially pathways are the ones found in the upper-left and upper-right corners.
      # Add a column to the data frame to specify if they are UP- or DOWN- regulated (pathway_score_difference respectively positive or negative
      df$path_signif <- "NS"
      p_value <- df$tukey_p_value
      signif_p_value <- 0.05
      # if pathway_score_difference > 0  
      df$path_signif[df$pathway_score_difference > 0 & p_value < signif_p_value] <- "*" #"Up"
      df$path_signif[df$pathway_score_difference > 0 & p_value > signif_p_value] <- "NS"

      # if pathway_score_difference < 0 
      df$path_signif[df$pathway_score_difference < 0 & p_value < signif_p_value] <- "*" #"Down"
      df$path_signif[df$pathway_score_difference < 0 & p_value > signif_p_value] <- "NS"
      # Create labels
      # df$labels <- with(df, ifelse(p_value < 0.05, hallmark_name_id, ""))
      df$path_signif <- with(df, ifelse(!path_signif == "NS", path_signif, ""))
      df$path_signif <- with(df, ifelse(!path_signif == "*", path_signif, p_value))

      #df$hallmark_name <- factor(df$hallmark_name,
      #                           levels = rev(unique(df$hallmark_name[order(df$tukey_p_value, decreasing = TRUE)]))) # Factor levels in increasing order
      
      
      ###### diverging barplots ###########
      name <- paste0(diverging_barplots_output, "/", "gsva_tukey_", rna_library_list[i], "-", cg_list[x], "-", td_models[t], "-tumor_descriptor_diverging_barplot.pdf")
      print(name)
      p <- create_diverging_barplot(df = df,
                                    y_value = df$pathway_score_difference,
                                    rna_library = rna_library_list[i],
                                    td_model_id = td_models[t],
                                    cg = cg_list[x])
      pdf(file = name, width = 12, height = 10)
      print(p)
      dev.off()
    
    
    ###### anova ######################################################################
    ###### barplots ###########    
    name <- paste0(barplots_output, "/", "gsva_anova_", rna_library_list[i], "-", cg_list[x], "-", "tumor_descriptor_barplot.pdf")
    print(name)
  
    # Re-order bars
    df <- tumor_descriptor_model_results[["anova"]]
    df$hallmark_name <- factor(df$hallmark_name,
                               levels = rev(unique(df$hallmark_name[order(df$anova_p_value, decreasing = TRUE)]))) # Factor levels in increasing order
    p <- create_barplot(df = df,
                        y_value = df$anova_p_value,
                        title_value = "anova_p_value", 
                        rna_library = rna_library_list[i],
                        td_model_id = NULL,
                        cg = cg_list[x])
    pdf(file = name, width = 12, height = 10)
    print(p)
    dev.off()
      
    ###### dot plots ###########
    dotplot_name <- paste0(dotplots_output, "/", "gsva_anova_", rna_library_list[i], "-", cg_list[x], "-", "tumor_descriptor_dotplot.pdf")
    print(dotplot_name)
    p <- create_dotplot(df = tumor_descriptor_model_results[["anova"]],
                        x_value = tumor_descriptor_model_results[["anova"]]$hallmark_name,
                        y_value = tumor_descriptor_model_results[["anova"]]$anova_p_value,
                        title_value = "anova_p_value",
                        rna_library = rna_library_list[i],
                        td_model_id = NULL,
                        cg = cg_list[x])
    pdf(file = dotplot_name, width = 12, height = 10)
    print(p)
    dev.off()
  }
  }
}
}
cg_list <- metadata_with_gsva %>% pull(cg) %>% unique()
cg_list <- sort(cg_list, decreasing = FALSE)
print(cg_list)
[1] "ATRT"            "DMG"             "Ependymoma"      "HGG"             "LGG"             "Medulloblastoma"
for(x in 1:length(cg_list)){
  print(x)
  
  # Define directories for output files
  barplots_output <-
  file.path(barplots_dir, cg_list[x])
if (!dir.exists(barplots_output)) {
  dir.create(barplots_output)
}

dotplots_output <-
  file.path(dotplots_dir, cg_list[x])
if (!dir.exists(dotplots_output)) {
  dir.create(dotplots_output)
}

diverging_barplots_output <-
  file.path(diverging_barplots_dir, cg_list[x])
if (!dir.exists(diverging_barplots_output)) {
  dir.create(diverging_barplots_output)
}


# File path to results directory
results_output <-
  file.path(results_dir, cg_list[x])
if (!dir.exists(results_output)) {
  dir.create(results_output)
}

  
  
  data_df <- metadata_with_gsva %>%
    dplyr::filter(cg == cg_list[x])
  
  ######## Find out unique RNA library types
  rna_library_list <- data_df %>% pull(data_type) %>% unique()
  rna_library_list <- sort(rna_library_list, decreasing = FALSE)
  print(rna_library_list)

for(i in 1:length(rna_library_list)){
  print(i)
  
  rna_library = rna_library_list[i]
  print(rna_library)
  
  # find out the number of `tumor_descriptor` with this RNA library
  tumor_descriptor_n <- data_df %>%
    dplyr::filter(data_type == rna_library) %>%
    dplyr::pull(tumor_descriptor) %>% 
    unique() %>% length()
  
    
  # anova can only be run on factors with >=2 levels, so to avoid error, we give a if statement
  if(tumor_descriptor_n>=2){
    
    tumor_descriptor_model_results <- gsva_anova_tukey(data_df, tumor_descriptor, rna_library, SIGNIFICANCE_THRESHOLD) 
  
    ###########################################################################################
    # print results for viewing
    print(rna_library)
    print(head(tumor_descriptor_model_results))
    
    
    anova_fname <- paste0(results_output, "/", "gsva_anova_", rna_library_list[i], "_", cg_list[x], "_tumor_descriptor.tsv")
    readr::write_tsv(tumor_descriptor_model_results[["anova"]], file = anova_fname)
     
    tukey_fname <- paste0(results_output, "/", "gsva_tukey_", rna_library_list[i], "_", cg_list[x], "_tumor_descriptor.tsv")
    readr::write_tsv(tumor_descriptor_model_results[["tukey"]], file = tukey_fname)

    ################ plot results ########################################################
    ###### tukey ######################################################################
   
    td_models <- unique(as.character(tumor_descriptor_model_results[["tukey"]]$comparison))
    td_models <- sort(td_models, decreasing = FALSE)
    print(td_models)
  
    for(t in seq_along(td_models)){
      print(t)
      
      #Set seed
      set.seed(2023)
    
      # Re-order bars
      df <- tumor_descriptor_model_results[["tukey"]] %>%
        filter(comparison == td_models[t]) %>% 
        mutate(across(tukey_p_value, round, 2))
        #mutate(hallmark_name_id = paste0(hallmark_name, 1:50))

      # The significantly differentially pathways are the ones found in the upper-left and upper-right corners.
      # Add a column to the data frame to specify if they are UP- or DOWN- regulated (pathway_score_difference respectively positive or negative
      df$path_signif <- "NS"
      p_value <- df$tukey_p_value
      signif_p_value <- 0.05
      # if pathway_score_difference > 0  
      df$path_signif[df$pathway_score_difference > 0 & p_value < signif_p_value] <- "*" #"Up"
      df$path_signif[df$pathway_score_difference > 0 & p_value > signif_p_value] <- "NS"

      # if pathway_score_difference < 0 
      df$path_signif[df$pathway_score_difference < 0 & p_value < signif_p_value] <- "*" #"Down"
      df$path_signif[df$pathway_score_difference < 0 & p_value > signif_p_value] <- "NS"
      # Create labels
      # df$labels <- with(df, ifelse(p_value < 0.05, hallmark_name_id, ""))
      df$path_signif <- with(df, ifelse(!path_signif == "NS", path_signif, ""))
      df$path_signif <- with(df, ifelse(!path_signif == "*", path_signif, p_value))

      #df$hallmark_name <- factor(df$hallmark_name,
      #                           levels = rev(unique(df$hallmark_name[order(df$tukey_p_value, decreasing = TRUE)]))) # Factor levels in increasing order
      
      
      ###### diverging barplots ###########
      name <- paste0(diverging_barplots_output, "/", "gsva_tukey_", rna_library_list[i], "-", cg_list[x], "-", td_models[t], "-tumor_descriptor_diverging_barplot.pdf")
      print(name)
      p <- create_diverging_barplot(df = df,
                                    y_value = df$pathway_score_difference,
                                    rna_library = rna_library_list[i],
                                    td_model_id = td_models[t],
                                    cg = cg_list[x])
      pdf(file = name, width = 12, height = 10)
      print(p)
      dev.off()
    
    
    ###### anova ######################################################################
    ###### barplots ###########    
    name <- paste0(barplots_output, "/", "gsva_anova_", rna_library_list[i], "-", cg_list[x], "-", "tumor_descriptor_barplot.pdf")
    print(name)
  
    # Re-order bars
    df <- tumor_descriptor_model_results[["anova"]]
    df$hallmark_name <- factor(df$hallmark_name,
                               levels = rev(unique(df$hallmark_name[order(df$anova_p_value, decreasing = TRUE)]))) # Factor levels in increasing order
    p <- create_barplot(df = df,
                        y_value = df$anova_p_value,
                        title_value = "anova_p_value", 
                        rna_library = rna_library_list[i],
                        td_model_id = NULL,
                        cg = cg_list[x])
    pdf(file = name, width = 12, height = 10)
    print(p)
    dev.off()
      
    ###### dot plots ###########
    dotplot_name <- paste0(dotplots_output, "/", "gsva_anova_", rna_library_list[i], "-", cg_list[x], "-", "tumor_descriptor_dotplot.pdf")
    print(dotplot_name)
    p <- create_dotplot(df = tumor_descriptor_model_results[["anova"]],
                        x_value = tumor_descriptor_model_results[["anova"]]$hallmark_name,
                        y_value = tumor_descriptor_model_results[["anova"]]$anova_p_value,
                        title_value = "anova_p_value",
                        rna_library = rna_library_list[i],
                        td_model_id = NULL,
                        cg = cg_list[x])
    pdf(file = dotplot_name, width = 12, height = 10)
    print(p)
    dev.off()
  }
  }
}
}
[1] 1
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

[1] "Deceased-Diagnosis"     "Deceased-Progressive"   "Deceased-Recurrence"    "Progressive-Diagnosis"  "Recurrence-Diagnosis"  
[6] "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_merged-ATRT-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_merged-ATRT-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Deceased-Diagnosis"    "Deceased-Progressive"  "Progressive-Diagnosis"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_stranded-ATRT-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_stranded-ATRT-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/ATRT/gsva_tukey_stranded-ATRT-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/ATRT/gsva_anova_stranded-ATRT-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

[1] "Deceased-Diagnosis"    "Deceased-Progressive"  "Progressive-Diagnosis"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_merged-DMG-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_merged-DMG-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_merged-DMG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_merged-DMG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Deceased-Diagnosis"    "Deceased-Progressive"  "Progressive-Diagnosis"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_stranded-DMG-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_stranded-DMG-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/DMG/gsva_tukey_stranded-DMG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/DMG/gsva_anova_stranded-DMG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

[1] "Deceased-Diagnosis"     "Deceased-Progressive"   "Deceased-Recurrence"    "Progressive-Diagnosis"  "Recurrence-Diagnosis"  
[6] "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_merged-Ependymoma-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_merged-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Deceased-Diagnosis"     "Deceased-Progressive"   "Deceased-Recurrence"    "Progressive-Diagnosis"  "Recurrence-Diagnosis"  
[6] "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Ependymoma/gsva_tukey_stranded-Ependymoma-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Ependymoma/gsva_anova_stranded-Ependymoma-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

 [1] "Deceased-Diagnosis"            "Deceased-Progressive"          "Deceased-Recurrence"           "Progressive-Diagnosis"        
 [5] "Recurrence-Diagnosis"          "Recurrence-Progressive"        "Second Malignancy-Deceased"    "Second Malignancy-Diagnosis"  
 [9] "Second Malignancy-Progressive" "Second Malignancy-Recurrence" 
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 7
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Second Malignancy-Deceased-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 8
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Second Malignancy-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 9
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Second Malignancy-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 10
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_merged-HGG-Second Malignancy-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_merged-HGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Deceased-Diagnosis"     "Deceased-Progressive"   "Deceased-Recurrence"    "Progressive-Diagnosis"  "Recurrence-Diagnosis"  
[6] "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/HGG/gsva_tukey_stranded-HGG-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/HGG/gsva_anova_stranded-HGG-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

[1] "Progressive-Diagnosis"  "Recurrence-Diagnosis"   "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_merged-LGG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_merged-LGG-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_merged-LGG-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_merged-LGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Progressive-Diagnosis"         "Recurrence-Diagnosis"          "Recurrence-Progressive"        "Second Malignancy-Diagnosis"  
[5] "Second Malignancy-Progressive" "Second Malignancy-Recurrence" 
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Second Malignancy-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Second Malignancy-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/LGG/gsva_tukey_stranded-LGG-Second Malignancy-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/LGG/gsva_anova_stranded-LGG-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "merged"   "stranded"
[1] 1
[1] "merged"
[1] 50
[1] "merged"
$anova

$tukey

[1] "Deceased-Diagnosis"     "Deceased-Progressive"   "Deceased-Recurrence"    "Progressive-Diagnosis"  "Recurrence-Diagnosis"  
[6] "Recurrence-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Deceased-Recurrence-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Recurrence-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_merged-Medulloblastoma-Recurrence-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_merged-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "stranded"
[1] 50
[1] "stranded"
$anova

$tukey

[1] "Deceased-Diagnosis"            "Deceased-Progressive"          "Progressive-Diagnosis"         "Second Malignancy-Deceased"   
[5] "Second Malignancy-Diagnosis"   "Second Malignancy-Progressive"
[1] 1
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Deceased-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 2
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Deceased-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 3
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Progressive-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 4
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Second Malignancy-Deceased-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 5
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Second Malignancy-Diagnosis-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"
[1] 6
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/diverging_barplots/Medulloblastoma/gsva_tukey_stranded-Medulloblastoma-Second Malignancy-Progressive-tumor_descriptor_diverging_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/barplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_barplot.pdf"
[1] "/Users/chronia/CHOP/GitHub/pbta-tumor-evolution/analyses/gene-set-enrichment-analysis/plots/paired-transcriptomic/dotplots/Medulloblastoma/gsva_anova_stranded-Medulloblastoma-tumor_descriptor_dotplot.pdf"

LS0tCnRpdGxlOiAiR1NWQSBTY29yZSBNb2RlbGluZyIKYXV0aG9yOiAiQW50b25pYSBDaHJvbmkgPGNocm9uaWFAY2hvcC5lZHU+IGZvciBEM0IiCmRhdGU6ICIyMDIzIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCi0tLQoKIyMjIFB1cnBvc2UKClRoZSBwdXJwb3NlIG9mIHRoaXMgYW5hbHlzaXMgaXMgdG8gYXNzZXNzIHNpZ25pZmljYW50IGRpZmZlcmVuY2VzIGluIEdTVkEgc2NvcmVzIGZvciBlYWNoIGhhbGxtYXJrIHBhdGh3YXlzLiBVc2luZyBBTk9WQSBhbmQgc3Vic2VxdWVudCBUdWtleSB0ZXN0cywgd2UgYXNrOgoKKyBGb3IgZWFjaCBwYXRod2F5LCBhcmUgR1NWQSBzY29yZXMgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgYWNyb3NzIGB0dW1vcl9kZXNjcmlwdG9yYD8gSWYgc28sIHdoaWNoIHRpbWVwb2ludHMgYXJlIHNpZ25pZmljYW50bHkgZGlmZmVyZW50PwoKV2UgcGVyZm9ybSB0aGlzIHVzaW5nIGJvdGggR1NWQSBzY29yZXMgY2FsY3VsYXRlZCBmcm9tIFJOQS1zZXEgbGlicmFyaWVzLiBDb2RlIGlzIGFsc28gZmxleGlibGUgZW5vdWdoIHRvIHRlc3QgYSBkaWZmZXJlbnQgdmFyaWFibGUgYmVzaWRlcyBgdHVtb3JfZGVzY3JpcHRvcmAsIGV0Yy4KCgpQbG90cyBhcmUgaW5zcGlyZWQgZnJvbSBoZXJlOiBodHRwczovL3l1bGFiLXNtdS50b3AvYmlvbWVkaWNhbC1rbm93bGVkZ2UtbWluaW5nLWJvb2svZW5yaWNocGxvdC5odG1sCgojIyMgVXNhZ2UKClRvIHJ1biB0aGlzIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgdXNlOgpgYGAKUnNjcmlwdCAtZSAicm1hcmtkb3duOjpyZW5kZXIoJzAxLW1vZGVsLWdzZWEtdHJhbnNjcmlwdG9taWMtcGFpcnMuUm1kJywgY2xlYW4gPSBUUlVFKSIgCmBgYApfVGhpcyBhc3N1bWVzIHlvdSBhcmUgaW4gdGhlIHRvcCBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkuXwoKIyBTZXR1cAoKTG9hZCBsaWJyYXJpZXMgYW5kIGRlZmluZSBjZXJ0YWluIGNvbnN0YW50czoKCmBgYHtyIGxvYWQtbGlicmFyeX0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKHsKICBsaWJyYXJ5KHRpZHl2ZXJzZSkKICBsaWJyYXJ5KGJyb29tKQogIGxpYnJhcnkoZ2dwdWJyKQogIGxpYnJhcnkoZ2dyZXBlbCkKICAKICAjaWYgKCFyZXF1aXJlKCJCaW9jTWFuYWdlciIsIHF1aWV0bHkgPSBUUlVFKSkKICAjICBpbnN0YWxsLnBhY2thZ2VzKCJCaW9jTWFuYWdlciIpCgogICNCaW9jTWFuYWdlcjo6aW5zdGFsbCgiQ29tcGxleEhlYXRtYXAiKQoKICBsaWJyYXJ5KENvbXBsZXhIZWF0bWFwKQoKfSkKYGBgCgoKIyMgRGlyZWN0b3JpZXMgYW5kIEZpbGUgSW5wdXRzL091dHB1dHMKCmBgYHtyIHNldC1kaXItYW5kLWZpbGUtbmFtZXN9CiMgRGV0ZWN0IHRoZSAiLmdpdCIgZm9sZGVyLiBUaGlzIHdpbGwgYmUgaW4gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkuCiMgVXNlIHRoaXMgYXMgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIGVuc3VyZSBwcm9wZXIgc291cmNpbmcgb2YgZnVuY3Rpb25zCiMgbm8gbWF0dGVyIHdoZXJlIHRoaXMgaXMgY2FsbGVkIGZyb20uCnJvb3RfZGlyIDwtIHJwcm9qcm9vdDo6ZmluZF9yb290KHJwcm9qcm9vdDo6aGFzX2RpcigiLmdpdCIpKQphbmFseXNpc19kaXIgPC0gZmlsZS5wYXRoKHJvb3RfZGlyLCAiYW5hbHlzZXMiLCAiZ2VuZS1zZXQtZW5yaWNobWVudC1hbmFseXNpcyIpIAppbnB1dF9kaXIgPC0gZmlsZS5wYXRoKGFuYWx5c2lzX2RpciwgImlucHV0IikKZmlsZXNfZGlyIDwtIGZpbGUucGF0aChyb290X2RpciwgImFuYWx5c2VzIiwgInNhbXBsZS1kaXN0cmlidXRpb24tYW5hbHlzaXMiLCAicmVzdWx0cyIpCgojIElucHV0IGZpbGVzCiMjIE1ldGFkYXRhIGZpbGUgKGhpc3RvbG9naWVzL2NsaW5pY2FsIGRhdGEpCm1ldGFkYXRhX2ZpbGUgPC0gZmlsZS5wYXRoKGZpbGVzX2RpciwgInBidGEudHN2IikgIyBmaWxlIGZyb20gYWRkLXNhbXBsZS1kaXN0cmlidXRpb24gbW9kdWxlCm1hdGNoZWRfdHJhbnNjcmlwdG9taWNfZmlsZSA8LSBmaWxlLnBhdGgoZmlsZXNfZGlyLCAidHJhbnNjcmlwdG9taWNfYXNzYXlzX21hdGNoZWRfdGltZV9wb2ludHMudHN2IikgIyBmaWxlIGZyb20gYWRkLXNhbXBsZS1kaXN0cmlidXRpb24gbW9kdWxlCgojIyBHU0VBIHNjb3JlcwpzY29yZXNfZmlsZSA8LSBmaWxlLnBhdGgoaW5wdXRfZGlyLCAiZ3N2YV9zY29yZXMudHN2IikKCiMgRmlsZSBwYXRoIHRvIHBsb3RzIGRpcmVjdG9yeQpwbG90c19kaXIgPC0KICBmaWxlLnBhdGgoYW5hbHlzaXNfZGlyLCAicGxvdHMiLCAicGFpcmVkLXRyYW5zY3JpcHRvbWljIikKaWYgKCFkaXIuZXhpc3RzKHBsb3RzX2RpcikpIHsKICBkaXIuY3JlYXRlKHBsb3RzX2RpcikKfQoKYmFycGxvdHNfZGlyIDwtCiAgZmlsZS5wYXRoKHBsb3RzX2RpciwgImJhcnBsb3RzIikKaWYgKCFkaXIuZXhpc3RzKGJhcnBsb3RzX2RpcikpIHsKICBkaXIuY3JlYXRlKGJhcnBsb3RzX2RpcikKfQoKZG90cGxvdHNfZGlyIDwtCiAgZmlsZS5wYXRoKHBsb3RzX2RpciwgImRvdHBsb3RzIikKaWYgKCFkaXIuZXhpc3RzKGRvdHBsb3RzX2RpcikpIHsKICBkaXIuY3JlYXRlKGRvdHBsb3RzX2RpcikKfQoKZGl2ZXJnaW5nX2JhcnBsb3RzX2RpciA8LQogIGZpbGUucGF0aChwbG90c19kaXIsICJkaXZlcmdpbmdfYmFycGxvdHMiKQppZiAoIWRpci5leGlzdHMoZGl2ZXJnaW5nX2JhcnBsb3RzX2RpcikpIHsKICBkaXIuY3JlYXRlKGRpdmVyZ2luZ19iYXJwbG90c19kaXIpCn0KCgojIEZpbGUgcGF0aCB0byByZXN1bHRzIGRpcmVjdG9yeQpyZXN1bHRzX2RpciA8LQogIGZpbGUucGF0aChhbmFseXNpc19kaXIsICJyZXN1bHRzIiwgInBhaXJlZC10cmFuc2NyaXB0b21pYyIpCmlmICghZGlyLmV4aXN0cyhyZXN1bHRzX2RpcikpIHsKICBkaXIuY3JlYXRlKHJlc3VsdHNfZGlyKQp9CgoKIyBTaWduaWZpY2FuY2UgdGVzdGluZyB1bml2ZXJzYWwgdGhyZXNob2xkClNJR05JRklDQU5DRV9USFJFU0hPTEQgPC0gMC4wMQoKIyBUaGlzIHNjcmlwdCBjb250YWlucyBmdW5jdGlvbnMgdXNlZCB0byBtb2RlbGluZyBHU1ZBIHNjb3Jlcwpzb3VyY2UocGFzdGUwKGFuYWx5c2lzX2RpciwgIi91dGlsL2hhbGxtYXJrX21vZGVscy5SIikpCnNvdXJjZShwYXN0ZTAoYW5hbHlzaXNfZGlyLCAiL3V0aWwvZnVuY3Rpb24tY3JlYXRlLXBsb3RzLlIiKSkKc291cmNlKHBhc3RlMChyb290X2RpciwgIi9maWd1cmVzL3NjcmlwdHMvdGhlbWUuUiIpKQpgYGAKCiMjIFJlYWQgaW4gZGF0YSBhbmQgcHJvY2VzcwoKYGBge3IgcmVhZC1pbnB1dC1maWxlc30KIyMjIyMjIyMgTG9hZCBpbnB1dCBmaWxlcwpwYnRhIDwtIHJlYWRyOjpyZWFkX3RzdihtZXRhZGF0YV9maWxlLCBndWVzc19tYXggPSAxMDAwMDApICU+JSAKICBmaWx0ZXIoZXhwZXJpbWVudGFsX3N0cmF0ZWd5ID09ICJSTkEtU2VxIikgJT4lIAogIGZpbHRlcighaXMubmEoUk5BX2xpYnJhcnkpKQoKIyBSZWFkIGluIG1hdGNoZWRfdHJhbnNjcmlwdG9taWNfZmlsZSBhbmQgZ2V0IHRoZSBsaXN0IG9mIHBhdGllbnRzIAojIHdpdGggbWF0Y2hlZCB0aW1lIHBvaW50cyBmb3IgdGhlIHRyYW5zY3JpcHRvbWljIGFzc2F5cwpwYXRpZW50X2xpc3QgPC0gcmVhZHI6OnJlYWRfdHN2KG1hdGNoZWRfdHJhbnNjcmlwdG9taWNfZmlsZSwgZ3Vlc3NfbWF4ID0gMTAwMDAwLCBzaG93X2NvbF90eXBlcyA9IEZBTFNFKSAlPiUKICBzdWJzZXQoc2VsZWN0ID0gYygiS2lkc19GaXJzdF9QYXJ0aWNpcGFudF9JRCIsICJkZXNjcmlwdG9ycyIpKQoKI3BhdGllbnRfbGlzdCA8LSByZWFkcjo6cmVhZF90c3YobWF0Y2hlZF90cmFuc2NyaXB0b21pY19maWxlLCBndWVzc19tYXggPSAxMDAwMDAsIHNob3dfY29sX3R5cGVzID0gRkFMU0UpICU+JQojICBzdWJzZXQoc2VsZWN0ID0gYygiS2lkc19GaXJzdF9QYXJ0aWNpcGFudF9JRCIsICJkZXNjcmlwdG9ycyIpKQoKIyBIb3cgbWFueSBwYXRpZW50cyB3aXRoIHBhaXJlZCBhc3NheXM/CnByaW50KGxlbmd0aCh1bmlxdWUocGF0aWVudF9saXN0JEtpZHNfRmlyc3RfUGFydGljaXBhbnRfSUQpKSkKCiMgQWRkIG1ldGFkYXRhIGZyb20gcGJ0YSB0byBwYXRpZW50IGxpc3QKbWV0YWRhdGEgPC0gcGF0aWVudF9saXN0ICU+JSAKICBsZWZ0X2pvaW4ocGJ0YSwgYnkgPSAiS2lkc19GaXJzdF9QYXJ0aWNpcGFudF9JRCIpCgpwcmludCh0YWJsZShtZXRhZGF0YSRSTkFfbGlicmFyeSkpCgoKIyBSZWFkIHNjb3JlcyBmaWxlCnNjb3Jlc19maWxlIDwtIHJlYWRyOjpyZWFkX3RzdihzY29yZXNfZmlsZSkgCgojIFZlY3RvciB0byBvcmRlciB0aW1lcG9pbnRzCnRpbWVwb2ludHMgPC0gYygiRGlhZ25vc2lzIiwgIlByb2dyZXNzaXZlIiwgIlJlY3VycmVuY2UiLCAiRGVjZWFzZWQiLCAiU2Vjb25kIE1hbGlnbmFuY3kiLCAiVW5hdmFpbGFibGUiKQoKIyMjIE1lcmdlIGhpc3RvbG9neSBtZXRhZGF0YSB3aXRoIGVhY2ggc2V0IG9mIGdzZWEgc2NvcmVzCm1ldGFkYXRhX3dpdGhfZ3N2YSA8LSBtZXRhZGF0YSAlPiUKICBpbm5lcl9qb2luKHNjb3Jlc19maWxlLCBieSA9ICJLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lEIiwgcmVsYXRpb25zaGlwID0gIm1hbnktdG8tbWFueSIpICU+JSAKICBtdXRhdGUoZGF0YV90eXBlID0gY2FzZV93aGVuKGdyZXBsKCJleG9tZV9jYXB0dXJlfHBvbHktQXxwb2x5LUEgc3RyYW5kZWQiLCBSTkFfbGlicmFyeSkgfiAibWVyZ2VkIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gUk5BX2xpYnJhcnkpLAogICAgICAgICAjIENyZWF0ZSBgY2dgIGNvbHVtbiB0byBhY2NvdW50IGZvciBzYW1wbGVzIHdpdGggdGhlIG1vc3QgYmlvc3BlY2ltZW5zIGFuZCB0cmFuc2NyaXB0cyBkYXRhIGluIHRoZXJlCiAgICAgICAgICMgV2Ugd2lsbCB1c2UgdGhlIGBjZ19pZGAgY29sdW1uIHRoYXQgYWxyZWFkeSBhY2NvdW50cyBmb3IgY2FzZXMgd2l0aCBtdWx0aXBsZSBkaWFnbm9zZXMKICAgICAgICAgIyBhbmQgaW5kaWNhdGVzIHRoZSBkaWFnbm9zaXMgYXQgdGhlIGZpcnN0IGRpYWdub3N0aWMgc3BlY2ltZW4KICAgICAgICAgY2cgPSBjYXNlX3doZW4oZ3JlcGwoIkhpZ2gtZ3JhZGUgZ2xpb21hIiwgY2dfaWQpIH4gIkhHRyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlcGwoIkRpZmZ1c2UgbWlkbGluZSBnbGlvbWEiLCBjZ19pZCkgfiAiRE1HIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXBsKCJBdHlwaWNhbCBUZXJhdG9pZCBSaGFiZG9pZCBUdW1vciIsIGNnX2lkKSB+ICJBVFJUIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXBsKCJMb3ctZ3JhZGUgZ2xpb21hIiwgY2dfaWQpIH4gIkxHRyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVwbCgiRXBlbmR5bW9tYSIsIGNnX2lkKSB+ICJFcGVuZHltb21hIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZXBsKCJNZWR1bGxvYmxhc3RvbWEiLCBjZ19pZCkgfiAiTWVkdWxsb2JsYXN0b21hIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiT3RoZXIiKSwKICAgICAgICAjIGJzX3JuYV9saWJyYXJ5X2lkID0gcGFzdGUoS2lkc19GaXJzdF9CaW9zcGVjaW1lbl9JRCwgUk5BX2xpYnJhcnlfc3VtLCBzZXAgPSAiXyIpLAogICAgICAgICB0dW1vcl9kZXNjcmlwdG9yID0gZmFjdG9yKHR1bW9yX2Rlc2NyaXB0b3IpLAogICAgICAgICB0dW1vcl9kZXNjcmlwdG9yID0gZmN0X3JlbGV2ZWwodHVtb3JfZGVzY3JpcHRvciwgdGltZXBvaW50cykpICU+JSAKICBmaWx0ZXIoIWNnID09ICJPdGhlciIpICU+JSAKICBhcnJhbmdlKHR1bW9yX2Rlc2NyaXB0b3IpCgojIEhvdyBtYW55IHBhdGllbnRzIHdpdGggcGFpcmVkIGFzc2F5cz8KcHJpbnQobGVuZ3RoKHVuaXF1ZShtZXRhZGF0YV93aXRoX2dzdmEkS2lkc19GaXJzdF9QYXJ0aWNpcGFudF9JRCkpKQoKIyBIb3cgbWFueSBwYXRpZW50cyB3aXRoIHBhaXJlZCBhc3NheXMgcGVyIGNhbmNlciB0eXBlPwpjZ191bmlxdWUgPC0gbWV0YWRhdGFfd2l0aF9nc3ZhICU+JSAKICBncm91cF9ieShLaWRzX0ZpcnN0X1BhcnRpY2lwYW50X0lELCBjZykgJT4lCiAgc2VsZWN0KEtpZHNfRmlyc3RfUGFydGljaXBhbnRfSUQsIGNnKSAlPiUgCiAgZGlzdGluY3QoS2lkc19GaXJzdF9QYXJ0aWNpcGFudF9JRCwgLmtlZXBfYWxsID0gVFJVRSkKCnByaW50KHRhYmxlKGNnX3VuaXF1ZSRjZykpCgojIEhvdyBtYW55IGJpb3NwZWNpbWVucyBwZXIgYFJOQV9saWJyYXJ5YD8KYnNfdW5pcXVlIDwtIG1ldGFkYXRhX3dpdGhfZ3N2YSAlPiUKICBncm91cF9ieShLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lELCBkYXRhX3R5cGUpICU+JQogIHNlbGVjdChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lELCBkYXRhX3R5cGUpICU+JSAKICBkaXN0aW5jdChLaWRzX0ZpcnN0X0Jpb3NwZWNpbWVuX0lELCAua2VlcF9hbGwgPSBUUlVFKQoKcHJpbnQodGFibGUoYnNfdW5pcXVlJGRhdGFfdHlwZSkpCnByaW50KHRhYmxlKG1ldGFkYXRhX3dpdGhfZ3N2YSRkYXRhX3R5cGUpKQoKYGBgCgojIyMgQU5PVkEgYW5kIFR1a2V5IGFuYWx5c2lzIG9mIEdTVkEgc2NvcmVzCgpIZXJlIHdlIHBlcmZvcm0gYSBzZXJpZXMgb2YgQU5PVkFzLCBmb3IgcG9seUEgYW5kIHN0cmFuZGVkIGxpYnJhcmllcyBzZXBhcmF0ZWx5LCB0byBkZXRlcm1pbmUgd2hldGhlciBtZWFuIEdTVkEgc2NvcmVzIGZvciBhIGdpdmVuIGdyb3VwaW5nIGFyZSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBhY3Jvc3MgaGFsbG1hcmtzIChwYXRod2F5cykuIFRoZSBnaXZlbiBncm91cGluZ3MgZXhhbWluZWQgaGVyZSBhcmUgYGNhbmNlcl9ncm91cGAgYW5kIGB0dW1vcl9kZXNjcmlwdG9yYC4gCkluIG90aGVyIHdvcmRzLCB3ZSBwZXJmb3JtIGFuIEFOT1ZBIChhbmQgYXNzb2NpYXRlZCBwb3N0aG9jIFR1a2V5IHRlc3QpIGZvciBlYWNoIGhhbGxtYXJrIGFzLCBgaGFsbG1hcmsgfiBncm91cGluZ2AuIFVzZXJzIGNhbiBzcGVjaWZ5IHRoZSBncm91cGluZyB2YXJpYWJsZS4KCgojIFJOQS1saWJyYXJ5LW1lcmdlZC12cy1zdHJhbmRlZAoKYGBge3IsIGFvdi1wZXJmb3JtLXBsb3QtUk5BLWxpYnJhcnktbWVyZ2VkLXZzLXN0cmFuZGVkLCBmaWcud2lkdGggPSAxMiwgZmlnLmhlaWdodCA9IDEwLCBmaWcuZnVsbHdpZHRoID0gVFJVRSwgZWNobyA9IFRSVUV9CmNnX2xpc3QgPC0gbWV0YWRhdGFfd2l0aF9nc3ZhICU+JSBwdWxsKGNnKSAlPiUgdW5pcXVlKCkKY2dfbGlzdCA8LSBzb3J0KGNnX2xpc3QsIGRlY3JlYXNpbmcgPSBGQUxTRSkKcHJpbnQoY2dfbGlzdCkKCmZvcih4IGluIDE6bGVuZ3RoKGNnX2xpc3QpKXsKICBwcmludCh4KQogIAogICMgRGVmaW5lIGRpcmVjdG9yaWVzIGZvciBvdXRwdXQgZmlsZXMKICBiYXJwbG90c19vdXRwdXQgPC0KICBmaWxlLnBhdGgoYmFycGxvdHNfZGlyLCBjZ19saXN0W3hdKQppZiAoIWRpci5leGlzdHMoYmFycGxvdHNfb3V0cHV0KSkgewogIGRpci5jcmVhdGUoYmFycGxvdHNfb3V0cHV0KQp9Cgpkb3RwbG90c19vdXRwdXQgPC0KICBmaWxlLnBhdGgoZG90cGxvdHNfZGlyLCBjZ19saXN0W3hdKQppZiAoIWRpci5leGlzdHMoZG90cGxvdHNfb3V0cHV0KSkgewogIGRpci5jcmVhdGUoZG90cGxvdHNfb3V0cHV0KQp9CgpkaXZlcmdpbmdfYmFycGxvdHNfb3V0cHV0IDwtCiAgZmlsZS5wYXRoKGRpdmVyZ2luZ19iYXJwbG90c19kaXIsIGNnX2xpc3RbeF0pCmlmICghZGlyLmV4aXN0cyhkaXZlcmdpbmdfYmFycGxvdHNfb3V0cHV0KSkgewogIGRpci5jcmVhdGUoZGl2ZXJnaW5nX2JhcnBsb3RzX291dHB1dCkKfQoKCiMgRmlsZSBwYXRoIHRvIHJlc3VsdHMgZGlyZWN0b3J5CnJlc3VsdHNfb3V0cHV0IDwtCiAgZmlsZS5wYXRoKHJlc3VsdHNfZGlyLCBjZ19saXN0W3hdKQppZiAoIWRpci5leGlzdHMocmVzdWx0c19vdXRwdXQpKSB7CiAgZGlyLmNyZWF0ZShyZXN1bHRzX291dHB1dCkKfQoKICAKICAKICBkYXRhX2RmIDwtIG1ldGFkYXRhX3dpdGhfZ3N2YSAlPiUKICAgIGRwbHlyOjpmaWx0ZXIoY2cgPT0gY2dfbGlzdFt4XSkKICAKICAjIyMjIyMjIyBGaW5kIG91dCB1bmlxdWUgUk5BIGxpYnJhcnkgdHlwZXMKICBybmFfbGlicmFyeV9saXN0IDwtIGRhdGFfZGYgJT4lIHB1bGwoZGF0YV90eXBlKSAlPiUgdW5pcXVlKCkKICBybmFfbGlicmFyeV9saXN0IDwtIHNvcnQocm5hX2xpYnJhcnlfbGlzdCwgZGVjcmVhc2luZyA9IEZBTFNFKQogIHByaW50KHJuYV9saWJyYXJ5X2xpc3QpCgpmb3IoaSBpbiAxOmxlbmd0aChybmFfbGlicmFyeV9saXN0KSl7CiAgcHJpbnQoaSkKICAKICBybmFfbGlicmFyeSA9IHJuYV9saWJyYXJ5X2xpc3RbaV0KICBwcmludChybmFfbGlicmFyeSkKICAKICAjIGZpbmQgb3V0IHRoZSBudW1iZXIgb2YgYHR1bW9yX2Rlc2NyaXB0b3JgIHdpdGggdGhpcyBSTkEgbGlicmFyeQogIHR1bW9yX2Rlc2NyaXB0b3JfbiA8LSBkYXRhX2RmICU+JQogICAgZHBseXI6OmZpbHRlcihkYXRhX3R5cGUgPT0gcm5hX2xpYnJhcnkpICU+JQogICAgZHBseXI6OnB1bGwodHVtb3JfZGVzY3JpcHRvcikgJT4lIAogICAgdW5pcXVlKCkgJT4lIGxlbmd0aCgpCiAgCiAgICAKICAjIGFub3ZhIGNhbiBvbmx5IGJlIHJ1biBvbiBmYWN0b3JzIHdpdGggPj0yIGxldmVscywgc28gdG8gYXZvaWQgZXJyb3IsIHdlIGdpdmUgYSBpZiBzdGF0ZW1lbnQKICBpZih0dW1vcl9kZXNjcmlwdG9yX24+PTIpewogICAgCiAgICB0dW1vcl9kZXNjcmlwdG9yX21vZGVsX3Jlc3VsdHMgPC0gZ3N2YV9hbm92YV90dWtleShkYXRhX2RmLCB0dW1vcl9kZXNjcmlwdG9yLCBybmFfbGlicmFyeSwgU0lHTklGSUNBTkNFX1RIUkVTSE9MRCkgCiAgCiAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgICAjIHByaW50IHJlc3VsdHMgZm9yIHZpZXdpbmcKICAgIHByaW50KHJuYV9saWJyYXJ5KQogICAgcHJpbnQoaGVhZCh0dW1vcl9kZXNjcmlwdG9yX21vZGVsX3Jlc3VsdHMpKQogICAgCiAgICAKICAgIGFub3ZhX2ZuYW1lIDwtIHBhc3RlMChyZXN1bHRzX291dHB1dCwgIi8iLCAiZ3N2YV9hbm92YV8iLCBybmFfbGlicmFyeV9saXN0W2ldLCAiXyIsIGNnX2xpc3RbeF0sICJfdHVtb3JfZGVzY3JpcHRvci50c3YiKQogICAgcmVhZHI6OndyaXRlX3Rzdih0dW1vcl9kZXNjcmlwdG9yX21vZGVsX3Jlc3VsdHNbWyJhbm92YSJdXSwgZmlsZSA9IGFub3ZhX2ZuYW1lKQogICAgIAogICAgdHVrZXlfZm5hbWUgPC0gcGFzdGUwKHJlc3VsdHNfb3V0cHV0LCAiLyIsICJnc3ZhX3R1a2V5XyIsIHJuYV9saWJyYXJ5X2xpc3RbaV0sICJfIiwgY2dfbGlzdFt4XSwgIl90dW1vcl9kZXNjcmlwdG9yLnRzdiIpCiAgICByZWFkcjo6d3JpdGVfdHN2KHR1bW9yX2Rlc2NyaXB0b3JfbW9kZWxfcmVzdWx0c1tbInR1a2V5Il1dLCBmaWxlID0gdHVrZXlfZm5hbWUpCgogICAgIyMjIyMjIyMjIyMjIyMjIyBwbG90IHJlc3VsdHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICMjIyMjIyB0dWtleSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgIAogICAgdGRfbW9kZWxzIDwtIHVuaXF1ZShhcy5jaGFyYWN0ZXIodHVtb3JfZGVzY3JpcHRvcl9tb2RlbF9yZXN1bHRzW1sidHVrZXkiXV0kY29tcGFyaXNvbikpCiAgICB0ZF9tb2RlbHMgPC0gc29ydCh0ZF9tb2RlbHMsIGRlY3JlYXNpbmcgPSBGQUxTRSkKICAgIHByaW50KHRkX21vZGVscykKICAKICAgIGZvcih0IGluIHNlcV9hbG9uZyh0ZF9tb2RlbHMpKXsKICAgICAgcHJpbnQodCkKICAgICAgCiAgICAgICNTZXQgc2VlZAogICAgICBzZXQuc2VlZCgyMDIzKQogICAgCiAgICAgICMgUmUtb3JkZXIgYmFycwogICAgICBkZiA8LSB0dW1vcl9kZXNjcmlwdG9yX21vZGVsX3Jlc3VsdHNbWyJ0dWtleSJdXSAlPiUKICAgICAgICBmaWx0ZXIoY29tcGFyaXNvbiA9PSB0ZF9tb2RlbHNbdF0pICU+JSAKICAgICAgICBtdXRhdGUoYWNyb3NzKHR1a2V5X3BfdmFsdWUsIHJvdW5kLCAyKSkKICAgICAgICAjbXV0YXRlKGhhbGxtYXJrX25hbWVfaWQgPSBwYXN0ZTAoaGFsbG1hcmtfbmFtZSwgMTo1MCkpCgogICAgICAjIFRoZSBzaWduaWZpY2FudGx5IGRpZmZlcmVudGlhbGx5IHBhdGh3YXlzIGFyZSB0aGUgb25lcyBmb3VuZCBpbiB0aGUgdXBwZXItbGVmdCBhbmQgdXBwZXItcmlnaHQgY29ybmVycy4KICAgICAgIyBBZGQgYSBjb2x1bW4gdG8gdGhlIGRhdGEgZnJhbWUgdG8gc3BlY2lmeSBpZiB0aGV5IGFyZSBVUC0gb3IgRE9XTi0gcmVndWxhdGVkIChwYXRod2F5X3Njb3JlX2RpZmZlcmVuY2UgcmVzcGVjdGl2ZWx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlCiAgICAgIGRmJHBhdGhfc2lnbmlmIDwtICJOUyIKICAgICAgcF92YWx1ZSA8LSBkZiR0dWtleV9wX3ZhbHVlCiAgICAgIHNpZ25pZl9wX3ZhbHVlIDwtIDAuMDUKICAgICAgIyBpZiBwYXRod2F5X3Njb3JlX2RpZmZlcmVuY2UgPiAwICAKICAgICAgZGYkcGF0aF9zaWduaWZbZGYkcGF0aHdheV9zY29yZV9kaWZmZXJlbmNlID4gMCAmIHBfdmFsdWUgPCBzaWduaWZfcF92YWx1ZV0gPC0gIioiICMiVXAiCiAgICAgIGRmJHBhdGhfc2lnbmlmW2RmJHBhdGh3YXlfc2NvcmVfZGlmZmVyZW5jZSA+IDAgJiBwX3ZhbHVlID4gc2lnbmlmX3BfdmFsdWVdIDwtICJOUyIKCiAgICAgICMgaWYgcGF0aHdheV9zY29yZV9kaWZmZXJlbmNlIDwgMCAKICAgICAgZGYkcGF0aF9zaWduaWZbZGYkcGF0aHdheV9zY29yZV9kaWZmZXJlbmNlIDwgMCAmIHBfdmFsdWUgPCBzaWduaWZfcF92YWx1ZV0gPC0gIioiICMiRG93biIKICAgICAgZGYkcGF0aF9zaWduaWZbZGYkcGF0aHdheV9zY29yZV9kaWZmZXJlbmNlIDwgMCAmIHBfdmFsdWUgPiBzaWduaWZfcF92YWx1ZV0gPC0gIk5TIgogICAgICAjIENyZWF0ZSBsYWJlbHMKICAgICAgIyBkZiRsYWJlbHMgPC0gd2l0aChkZiwgaWZlbHNlKHBfdmFsdWUgPCAwLjA1LCBoYWxsbWFya19uYW1lX2lkLCAiIikpCiAgICAgIGRmJHBhdGhfc2lnbmlmIDwtIHdpdGgoZGYsIGlmZWxzZSghcGF0aF9zaWduaWYgPT0gIk5TIiwgcGF0aF9zaWduaWYsICIiKSkKICAgICAgZGYkcGF0aF9zaWduaWYgPC0gd2l0aChkZiwgaWZlbHNlKCFwYXRoX3NpZ25pZiA9PSAiKiIsIHBhdGhfc2lnbmlmLCBwX3ZhbHVlKSkKCiAgICAgICNkZiRoYWxsbWFya19uYW1lIDwtIGZhY3RvcihkZiRoYWxsbWFya19uYW1lLAogICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gcmV2KHVuaXF1ZShkZiRoYWxsbWFya19uYW1lW29yZGVyKGRmJHR1a2V5X3BfdmFsdWUsIGRlY3JlYXNpbmcgPSBUUlVFKV0pKSkgIyBGYWN0b3IgbGV2ZWxzIGluIGluY3JlYXNpbmcgb3JkZXIKICAgICAgCiAgICAgIAogICAgICAjIyMjIyMgZGl2ZXJnaW5nIGJhcnBsb3RzICMjIyMjIyMjIyMjCiAgICAgIG5hbWUgPC0gcGFzdGUwKGRpdmVyZ2luZ19iYXJwbG90c19vdXRwdXQsICIvIiwgImdzdmFfdHVrZXlfIiwgcm5hX2xpYnJhcnlfbGlzdFtpXSwgIi0iLCBjZ19saXN0W3hdLCAiLSIsIHRkX21vZGVsc1t0XSwgIi10dW1vcl9kZXNjcmlwdG9yX2RpdmVyZ2luZ19iYXJwbG90LnBkZiIpCiAgICAgIHByaW50KG5hbWUpCiAgICAgIHAgPC0gY3JlYXRlX2RpdmVyZ2luZ19iYXJwbG90KGRmID0gZGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlfdmFsdWUgPSBkZiRwYXRod2F5X3Njb3JlX2RpZmZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJuYV9saWJyYXJ5ID0gcm5hX2xpYnJhcnlfbGlzdFtpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRfbW9kZWxfaWQgPSB0ZF9tb2RlbHNbdF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNnID0gY2dfbGlzdFt4XSkKICAgICAgcGRmKGZpbGUgPSBuYW1lLCB3aWR0aCA9IDEyLCBoZWlnaHQgPSAxMCkKICAgICAgcHJpbnQocCkKICAgICAgZGV2Lm9mZigpCiAgICAKICAgIAogICAgIyMjIyMjIGFub3ZhICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAgICMjIyMjIyBiYXJwbG90cyAjIyMjIyMjIyMjIyAgICAKICAgIG5hbWUgPC0gcGFzdGUwKGJhcnBsb3RzX291dHB1dCwgIi8iLCAiZ3N2YV9hbm92YV8iLCBybmFfbGlicmFyeV9saXN0W2ldLCAiLSIsIGNnX2xpc3RbeF0sICItIiwgInR1bW9yX2Rlc2NyaXB0b3JfYmFycGxvdC5wZGYiKQogICAgcHJpbnQobmFtZSkKICAKICAgICMgUmUtb3JkZXIgYmFycwogICAgZGYgPC0gdHVtb3JfZGVzY3JpcHRvcl9tb2RlbF9yZXN1bHRzW1siYW5vdmEiXV0KICAgIGRmJGhhbGxtYXJrX25hbWUgPC0gZmFjdG9yKGRmJGhhbGxtYXJrX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSByZXYodW5pcXVlKGRmJGhhbGxtYXJrX25hbWVbb3JkZXIoZGYkYW5vdmFfcF92YWx1ZSwgZGVjcmVhc2luZyA9IFRSVUUpXSkpKSAjIEZhY3RvciBsZXZlbHMgaW4gaW5jcmVhc2luZyBvcmRlcgogICAgcCA8LSBjcmVhdGVfYmFycGxvdChkZiA9IGRmLAogICAgICAgICAgICAgICAgICAgICAgICB5X3ZhbHVlID0gZGYkYW5vdmFfcF92YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVfdmFsdWUgPSAiYW5vdmFfcF92YWx1ZSIsIAogICAgICAgICAgICAgICAgICAgICAgICBybmFfbGlicmFyeSA9IHJuYV9saWJyYXJ5X2xpc3RbaV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRkX21vZGVsX2lkID0gTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgY2cgPSBjZ19saXN0W3hdKQogICAgcGRmKGZpbGUgPSBuYW1lLCB3aWR0aCA9IDEyLCBoZWlnaHQgPSAxMCkKICAgIHByaW50KHApCiAgICBkZXYub2ZmKCkKICAgICAgCiAgICAjIyMjIyMgZG90IHBsb3RzICMjIyMjIyMjIyMjCiAgICBkb3RwbG90X25hbWUgPC0gcGFzdGUwKGRvdHBsb3RzX291dHB1dCwgIi8iLCAiZ3N2YV9hbm92YV8iLCBybmFfbGlicmFyeV9saXN0W2ldLCAiLSIsIGNnX2xpc3RbeF0sICItIiwgInR1bW9yX2Rlc2NyaXB0b3JfZG90cGxvdC5wZGYiKQogICAgcHJpbnQoZG90cGxvdF9uYW1lKQogICAgcCA8LSBjcmVhdGVfZG90cGxvdChkZiA9IHR1bW9yX2Rlc2NyaXB0b3JfbW9kZWxfcmVzdWx0c1tbImFub3ZhIl1dLAogICAgICAgICAgICAgICAgICAgICAgICB4X3ZhbHVlID0gdHVtb3JfZGVzY3JpcHRvcl9tb2RlbF9yZXN1bHRzW1siYW5vdmEiXV0kaGFsbG1hcmtfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgeV92YWx1ZSA9IHR1bW9yX2Rlc2NyaXB0b3JfbW9kZWxfcmVzdWx0c1tbImFub3ZhIl1dJGFub3ZhX3BfdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlX3ZhbHVlID0gImFub3ZhX3BfdmFsdWUiLAogICAgICAgICAgICAgICAgICAgICAgICBybmFfbGlicmFyeSA9IHJuYV9saWJyYXJ5X2xpc3RbaV0sCiAgICAgICAgICAgICAgICAgICAgICAgIHRkX21vZGVsX2lkID0gTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgY2cgPSBjZ19saXN0W3hdKQogICAgcGRmKGZpbGUgPSBkb3RwbG90X25hbWUsIHdpZHRoID0gMTIsIGhlaWdodCA9IDEwKQogICAgcHJpbnQocCkKICAgIGRldi5vZmYoKQogIH0KICB9Cn0KfQpgYGAKCgoKCgpgYGB7cn0Kc2Vzc2lvbkluZm8oKQpgYGAKCg==